/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package backingbeans;

import co.uam.soi.entity.Grupo;
import co.uam.soi.session.GrupoFacadeLocal;
import co.uam.soi.util.SoiUtil;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author hayner
 */
@SessionScoped
@ManagedBean(name="grupoAction")
public class GrupoAction {
    private Grupo grupo = new Grupo();
    @EJB private GrupoFacadeLocal grupoFacadeLocal;
    private List<Grupo> listaGrupos = new ArrayList<Grupo>();
    private String idGrupo;

    /**
     * 
     */
    public String guardarGrupo(){
        try{
            grupoFacadeLocal.create(grupo);
        }
        catch(Exception ex){
            
        }
        return cargarListaGrupos();
    }

    /**
     * 
     */
    public void eliminarGrupo(){
        idGrupo = (String) SoiUtil.obtenerParametro("idGrupo");
        if(idGrupo!=null){
            try{

                grupo=obtenerGrupoPorId(Short.parseShort(idGrupo));
                grupoFacadeLocal.remove(grupo);
            }
            catch(NumberFormatException nfe){
                System.out.println("el identificador no es un número, por favor corrija");
            }
            catch(Exception ex){
                System.out.println("ha ocurrido un problema al eliminar el grupo con el id "+idGrupo);
            }
        }
        cargarListaGrupos();
    }

    /**
     * 
     * @param id
     * @return
     */
    public Grupo obtenerGrupoPorId( Short id){
        Grupo grupoObtenido = new Grupo();
        try{
            grupoObtenido= grupoFacadeLocal.find(id);
        }
        catch(Exception ex){
            System.out.println("Se genero un problema al buscar el grupo con el id "+id);
        }
        return grupoObtenido;
    }

    /**
     * 
     * @return
     */
    public String cargarGrupo(){
        idGrupo = (String)SoiUtil.obtenerParametro("idGrupo");
        try{
            grupo=obtenerGrupoPorId(Short.parseShort(idGrupo));
        }
        catch(NumberFormatException nfe){
            System.out.println("el identificador no es un número, por favor corrija");
        }
        catch(Exception ex){
            System.out.println("ha ocurrido un problema al cargar el grupo con el id "+idGrupo);
        }
        return "EDITAR_GRUPO";
    }

    /**
     * 
     */
    public String editarGrupo(){
        try{
            grupoFacadeLocal.edit(grupo);
        }
        catch(Exception ex){
            System.out.println("ha ocurrido un problema al editar el grupo con el id "+grupo.getId());
        }
        return cargarListaGrupos();
    }

    /**
     * 
     * @return
     */
    public String cargarListaGrupos(){
        grupo=new Grupo();
        idGrupo=null;
        listaGrupos=obtenerListaGrupos();
        return "LISTAR_GRUPO";
    }

    /**
     * 
     * @return
     */
    public List<Grupo> obtenerListaGrupos(){
        List<Grupo> listadoGrupos = new ArrayList<Grupo>();
        try{
            listadoGrupos=grupoFacadeLocal.findAll();
        }
        catch(Exception ex){
            System.out.println("ha ocurrido un problema al obtener el listado de grupos ");
        }
        return listadoGrupos;
    }

    /**
     * 
     * @return
     */
    public String irANuevo(){
        return "CREAR_GRUPO";
    }

    /**
     * 
     * @return
     */
    public String volverAMenu(){
        return "GRUPO_MENU";
    }

    public List<Grupo> getListaGrupos() {
        return listaGrupos;
    }

    public void setListaGrupos(List<Grupo> listaGrupos) {
        this.listaGrupos = listaGrupos;
    }

    public Grupo getGrupo() {
        return grupo;
    }

    public void setGrupo(Grupo grupo) {
        this.grupo = grupo;
    }

    public String getIdGrupo() {
        return idGrupo;
    }

    public void setIdGrupo(String idGrupo) {
        this.idGrupo = idGrupo;
    }
    
}
